草庐IT

Java : parse java source code, 提取方法

全部标签

ruby - 使用 lambda 在单个实例上重新定义单个 ruby​​ 方法

在Ruby中,有没有办法使用proc重新定义类的特定实例的方法?例如:classFoodefbar()return"hello"endendx=Foo.newy=Foo.new(类似的东西):y.method(:bar)=lambda{return"goodbye"}x.bary.bar制作:hellogoodbye谢谢。 最佳答案 defdefine_singleton_method_by_proc(obj,name,block)metaclass=class或者,如果你想猴子修补对象以使其变得容易classObject#note

ruby-on-rails - Ruby 方法和可选参数

我正在玩RubyonRails,我正在尝试创建一个带有可选参数的方法。显然有很多方法可以做到这一点。我尝试将可选参数命名为散列,而不定义它们。输出不同。看一看:#Thisfunctionsworksfine!defmy_info(name,options={})age=options[:age]||27weight=options[:weight]||160city=options[:city]||"NewYork"puts"Mynameis#{name},myageis#{age},myweightis#{weight}andIlivein{city}"endmy_info"Bill

ruby-on-rails - 使用 rails form_for 时使用 "_path"的未定义方法

我在使用Railsform_for助手时遇到了(我认为)路由错误。我一直在四处寻找并查看thisquestion,但是带有复数形式的“static_event”的复数形式是“static_events”,所以我不知所措。任何帮助将不胜感激。这是详细信息....ActionView::Template::Error(undefinedmethod`static_events_path'for#:0x007f9fcc46fa78>):我的模型:classStaticEvent我的Controller:classStaticEventsController[:create,:destroy]

ruby-on-rails - Ruby 混入和调用 super 方法

好的,所以我一直在重构我的小Rails应用程序中的代码,以努力消除重复,并总体上让我的生活更轻松(因为我喜欢轻松的生活)。重构的一部分是将我的两个模型通用的代码移动到一个模块,我可以在需要的地方包含它。到目前为止,还不错。看起来它会成功,但我刚刚遇到了一个我不确定如何解决的问题。该模块(我称之为可发送)将成为处理传真、电子邮件或打印文档PDF的代码。因此,例如,我有采购订单和内部销售订单(想象中缩写为ISO)。我遇到的问题是,我希望在加载对象后初始化一些变量(为拼写不正确的人初始化:P),所以我一直在使用after_initializeHook。没问题……直到我开始添加更多混合宏。我遇

ruby - Ruby 是否提供了一种使用指定编码执行 File.read() 的方法?

在ruby​​1.9.x中,我们可以使用File.open('filename','r:iso-8859-1')指定编码。如果我直接将许多短文件读入字符串,我通常更喜欢使用单行File.read()。有什么方法可以直接指定编码,还是必须求助于以下方法之一?str=File.read('filename')str.force_encoding('iso-8859-1')或f=File.open('filename','r:iso-8859-1')s=''while(line=f.gets)s+=lineendf.close 最佳答案

ruby - 在 ruby​​ 中调试第三方 gem 的最佳方法

由于rubygem中可能有很多GhostMethods,我认为仅仅通过静态阅读其源代码来研究rubygem的内部机制并不是一个好主意.有没有一种方法可以将第三方gem的源文件附加到正在运行的ruby​​进程进行调试,以便我可以设置断点并查看其动态运行情况?顺便说一句,我试图通过单击“require”语句的上下文菜单“GoTo->Implementations”或第三方gem的其他符号(require'watir'forexample),但没有成功。Ruby等动态类型语言的IDE符号导航失败是否正常? 最佳答案 我很想知道是否有更好的

从 URL 字符串中提取主机的 Ruby 代码

我正在寻找一种方法来可靠地从Ruby中的URL字符串中提取主机名。例如http://www.mglenn.com/directory=www.mglenn.com或者http://www.mglenn.com?param=x=www.mglenn.com 最佳答案 你可以尝试这样的事情:require'uri'myUri=URI.parse('http://www.mglenn.com/directory')printmyUri.host#=>www.mglenn.com 关于从URL字

ruby-on-rails - 从 ActiveRecord 对象中提取两个属性的快捷方式?

是否有更短的方法来执行以下操作(@user.employees.map{|e|{id:e.id,name:e.name}}#=>[{id:1,name:'Pete'},{id:2,name:'Fred'}]用户has_many员工。这两个类都继承自ActiveRecord::Base。上面有两点我不喜欢它在映射之前将员工加载到内存中,它很冗长(我猜是主观的)。有没有更好的办法? 最佳答案 更新:查看@jamesharker的解决方案:从ActiveRecord>=4,pluck接受多个参数:@user.employees.pluck

ruby 检测方法

选择有意义。但是有人可以向我解释.detect吗?我不明白这些数据。>>[1,2,3,4,5,6,7].detect{|x|x.between?(3,4)}=>3>>[1,2,3,4,5,6,7].detect{|x|x.between?(3,6)}=>3>>[1,2,3,4,5,6,7].detect{|x|x.between?(3,7)}=>3>>[1,2,3,4,5,6,7].detect{|x|x.between?(2,7)}=>2>>[1,2,3,4,5,6,7].detect{|x|x.between?(1,7)}=>1>>[1,2,3,4,5,6,7].detect{|x

ruby - RSpec:每次指定对具有不同参数的方法的多次调用

在rspec(1.2.9)中,指定一个对象每次都会收到对一个方法的多次调用的正确方法是什么?我问是因为这个令人困惑的结果:describeObjectdoit"passes,asexpected"dofoo=mock('foo')foo.should_receive(:bar).once.ordered.with(1)foo.should_receive(:bar).once.ordered.with(2)foo.bar(1)foo.bar(2)endit"fails,asexpected"dofoo=mock('foo')foo.should_receive(:bar).once.o